package arithmetic.Singleton;

/**
 * Created by jiangfeng on 2017/10/15.
 * 一个简单的单例（饿汉）
 *
 * 顺序不一样则不一样
 */
public class Singleton {
    private static Singleton instance =new Singleton();
    public static int count1;
    public static int count2=0;

    private Singleton(){
        count1++;
        count2++;
    }
    public static Singleton getInstance(){
        return instance;
    }

    public static void main(String[] args) {
        // count1,count2在new Singleton();下面时输出为 1，0   在其上面时输出为 1，1
        // 分析原因：类在加载时给静态变量分配内存，赋初始值，在初始化阶段时给静态变量赋正确的值。
        // 在给instance赋值时count1和count2都为1，在给count1、count2赋值时，count2又变回0。
        System.out.println(Singleton.count1);
        System.out.println(Singleton.count2);
    }
}
